This invention relates generally to computing technology and more particularly concerns the booting up of a computing device.
In a typical computer system, a computing device typically includes a central processing unit (CPU) on a motherboard that may communicate with peripheral devices such as, for example, storage devices, to retrieve and store data. When the computing device is typically turned on, a process generally known as a boot-up occurs. During this process, a system BIOS that is run by the CPU may communicate with the storage device to retrieve programming instructions to enable the operation of the computing device. In a typical boot-up process, the system BIOS retrieves data from a master boot record portion of the storage device. The master boot record generally contains pointers that indicate where system files are located in the storage device. The system files are data that enable the system BIOS to load an operating system into the system memory and enable the CPU to run the operating system. Therefore, the system BIOS first looks to the master boot record to determine the location of the system files and once the system files are found, they are loaded into the system memory for execution by the CPU.
FIG. 1 shows a typical computer system 20 connected to a storage device 22. Generally, during a boot up process, a system BIOS that is run by a CPU 24 of the computer system 20 initializes peripheral devices that are connected to the computer system. The system BIOS then accesses a master boot record of a storage device which is typically a hard disk drive. The master boot record is generally the first sector of the storage device and contains pointers to locations where the system files are located. The BIOS accesses the master boot record and starts to load the system files into the system memory. Boot up then continues as is known to those skilled in the art.
Protection of data on the storage device has been sought by using devices such as redundant array of inexpensive disks (RAID). In such systems, redundant data may be stored on multiple disks so, in cases of a disk failure, the same data may be retrieved from another disk and therefore, the data is not lost. This type of protection may work if a particular disk drive fails but if a virus or some other type of unintended data altering entity is introduced into the RAID system, the virus may be stored on all of the disk drives and therefore redundant data systems may not protect the data on the disk drives. This type of issue is especially problematic where boot up data is desired to be protected. Even in RAID systems, when a master boot record or system files are infected, the computing device may not be able to boot up due to the infection. Consequently, the computer system may not be able to boot up if the boot up data is corrupted or is lost because even the redundant data stored in the RAID arrays may contain the same problems as the boot up data in the master boot record and the original system files. This can occur because the operating system typically has access to all the storage devices in a RAID array. Therefore, because the operating system has access to all locations where the boot up data exists, if a virus attack occurs, the RAID arrays with the boot up data may not be protected.
Unfortunately, in situations where data integrity of boot-up data is desired, there is a need for a data storage system that enables protection of the master boot record data and system files data.